863ba559860a096fa3e797a4ba6657c6286d57df,core/languageDesign/smodelLanguage/source_gen/jetbrains/mps/bootstrap/smodelLanguage/constraints/SPropertyAccess_property_ReferentConstraint.java,SPropertyAccess_property_ReferentConstraint,createNodeReferentSearchScope,#IOperationContext#ReferentConstraintContext#,36
Before Change
public ISearchScope createNodeReferentSearchScope(final IOperationContext operationContext, final ReferentConstraintContext _context) {
SNode dotOperand = SLinkOperations.getTarget(_context.getEnclosingNode(), "operand", true);
SNode nodeType = TypeChecker.getInstance().getRuntimeSupport().coerce(TypeChecker.getInstance().getTypeOf(dotOperand), HUtil.createMatchingPatternByConceptFQName("jetbrains.mps.bootstrap.smodelLanguage.structure.SNodeType"), false);
if(nodeType == null) {
return null;
}
SNode dotOperandConcept = SLinkOperations.getTarget(nodeType, "concept", false);
if(dotOperandConcept == null) {
dotOperandConcept = SConceptOperations.findConceptDeclaration("jetbrains.mps.core.structure.BaseConcept");
}
After Change
public ISearchScope createNodeReferentSearchScope(final IOperationContext operationContext, final ReferentConstraintContext _context) {
SNode dotOperandConcept = null;
SNode dotOperand = SLinkOperations.getTarget(_context.getEnclosingNode(), "operand", true);
SNode dotOperandType = TypeChecker.getInstance().getTypeOf(dotOperand);
if(SNodeOperations.isInstanceOf(dotOperandType, "jetbrains.mps.bootstrap.smodelLanguage.structure._LinkAccessT")) {
dotOperandConcept = SLinkOperations.getTarget(dotOperandType, "targetConcept", false);
} else
{
SNode nodeType = TypeChecker.getInstance().getRuntimeSupport().coerce(dotOperandType, HUtil.createMatchingPatternByConceptFQName("jetbrains.mps.bootstrap.smodelLanguage.structure.SNodeType"), false);
dotOperandConcept = SLinkOperations.getTarget(nodeType, "concept", false);
}
if(dotOperandConcept == null) {
dotOperandConcept = SConceptOperations.findConceptDeclaration("jetbrains.mps.core.structure.BaseConcept");